Load Packages

# load packages
install.packages("pacman", repos = "http://cran.us.r-project.org")
## 
## The downloaded binary packages are in
##  /var/folders/kt/yl7v2brs3v3br9sjdd0t8mhm0000gr/T//RtmpwIi30f/downloaded_packages
library(pacman)
p_load(tidyverse, ggridges, ggplot2, patchwork, rstatix, reshape2, ggdist, easystats, ordinal, lme4, apaTables, car, robustlmm)

options(scipen=30000)

Load Data

# load in datafiles

df_survey <- read.csv("dataframes/softbots_study1.csv", header=TRUE)
# remove added x column
df_survey <- df_survey[-1]

df_unique <- read.csv("dataframes/df_unique.csv", header=TRUE)
# remove added x column
df_unique <- df_unique[-1]

Variable transformation

# Bring variables into right format

# factors
df_survey <- df_survey %>%
  mutate(across(c(ParticipantID, consent, gender, country, teach.school, robot, robot_type, starts_with("rank"),starts_with("suit"),starts_with("favorite"), attentioncheck1, attentioncheck2, source, videos.amount, movies.amount, robots.skepticism), as.factor))

# numeric
df_survey <- df_survey %>%
  mutate(across(c(starts_with("prior"), teach.age_1, teach.age_2,teach.age_3,teach.age_4,teach.age_5,teach.age_6,teach.subject_1,teach.subject_2,teach.subject_3,teach.subject_4,teach.subject_5,teach.subject_6,teach.subject_7,teach.subject_8,teach.subject_9,teach.subject_10, Views, Viewssuit, totalviews),as.numeric
  ))

Correlations

df_cor <- df_survey[,c(7,81:96,110:113)]

# rename variables
df_cor <- df_cor %>%
  dplyr::rename(
    "Age" = age,
    "Familiarity to robot" = familiarrobot,
    "Familiarity to objects" = familiarobjec,
    "Safety" = safety,
    "Competence" = competence,
    "Comfortable around" = comfortable,
    "Friendliness" = friendliness,
    "Creepy/Cute" = creepycute,
    "Bad/Good" = badgood,
    "Physical warmth" = physicalwarm,
    "Social warmth" = socialwarm,
    "Human-like form" = humanform,
    "Human-like motion" = humanmotion,
    "Social competence" = socialcompetence,
    "Socialness" = socialness,
    "Social intelligence" = socialintelligence,
    "Intelligence" = intelligence,
    "Suitability math" = suitmath,
    "Suitability diff. task" = suitdifftask,
    "Suitability reading" = suitread,
    "Suitability art" = suitart
  )

#create table
apa.cor.table(df_cor, filename="Tables/Dimensions_correlations.doc", table.number=1)
## 
## 
## Table 1 
## 
## Means, standard deviations, and correlations with confidence intervals
##  
## 
##   Variable                  M     SD    1            2          3         
##   1. Age                    42.80 11.05                                   
##                                                                           
##   2. Familiarity to robot   23.91 29.01 -.11**                            
##                                         [-.16, -.05]                      
##                                                                           
##   3. Familiarity to objects 40.65 33.58 -.09**       .61**                
##                                         [-.14, -.04] [.58, .64]           
##                                                                           
##   4. Safety                 55.62 28.67 -.03         .27**      .35**     
##                                         [-.08, .02]  [.22, .32] [.31, .40]
##                                                                           
##   5. Competence             39.14 28.61 -.08**       .42**      .32**     
##                                         [-.13, -.02] [.38, .47] [.27, .37]
##                                                                           
##   6. Comfortable around     51.81 29.36 -.01         .32**      .41**     
##                                         [-.07, .04]  [.27, .37] [.37, .46]
##                                                                           
##   7. Friendliness           48.42 29.73 -.07**       .38**      .44**     
##                                         [-.12, -.02] [.34, .43] [.39, .48]
##                                                                           
##   8. Creepy/Cute            50.96 29.47 -.00         .29**      .38**     
##                                         [-.06, .05]  [.24, .34] [.33, .42]
##                                                                           
##   9. Bad/Good               49.61 26.87 -.11**       .41**      .36**     
##                                         [-.16, -.06] [.36, .45] [.32, .41]
##                                                                           
##   10. Physical warmth       38.70 29.40 -.04         .32**      .39**     
##                                         [-.10, .01]  [.27, .37] [.35, .44]
##                                                                           
##   11. Social warmth         39.74 29.72 -.08**       .41**      .41**     
##                                         [-.14, -.03] [.37, .46] [.37, .45]
##                                                                           
##   12. Human-like form       27.42 29.25 .01          .44**      .28**     
##                                         [-.04, .07]  [.40, .48] [.23, .33]
##                                                                           
##   13. Human-like motion     30.10 29.26 -.01         .43**      .31**     
##                                         [-.07, .04]  [.39, .47] [.26, .36]
##                                                                           
##   14. Social competence     34.87 27.94 -.09**       .40**      .34**     
##                                         [-.14, -.04] [.36, .45] [.30, .39]
##                                                                           
##   15. Socialness            37.41 29.02 -.05         .42**      .38**     
##                                         [-.10, .00]  [.37, .46] [.33, .42]
##                                                                           
##   16. Social intelligence   34.42 27.69 -.08**       .43**      .35**     
##                                         [-.13, -.03] [.39, .47] [.30, .39]
##                                                                           
##   17. Intelligence          37.65 28.26 -.07**       .42**      .27**     
##                                         [-.12, -.02] [.38, .46] [.22, .32]
##                                                                           
##   4          5          6          7          8          9          10        
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##                                                                               
##   .45**                                                                       
##   [.41, .49]                                                                  
##                                                                               
##   .67**      .49**                                                            
##   [.64, .70] [.45, .53]                                                       
##                                                                               
##   .60**      .56**      .72**                                                 
##   [.57, .64] [.52, .59] [.70, .75]                                            
##                                                                               
##   .62**      .41**      .81**      .73**                                      
##   [.58, .65] [.36, .45] [.79, .82] [.70, .75]                                 
##                                                                               
##   .65**      .67**      .69**      .71**      .66**                           
##   [.62, .68] [.64, .70] [.66, .72] [.68, .73] [.63, .69]                      
##                                                                               
##   .54**      .50**      .67**      .77**      .69**      .60**                
##   [.50, .57] [.46, .53] [.64, .70] [.75, .79] [.66, .71] [.56, .63]           
##                                                                               
##   .54**      .60**      .67**      .81**      .67**      .67**      .81**     
##   [.50, .57] [.57, .64] [.65, .70] [.79, .83] [.64, .70] [.64, .70] [.79, .83]
##                                                                               
##   .29**      .59**      .35**      .49**      .33**      .47**      .40**     
##   [.24, .33] [.56, .62] [.31, .40] [.45, .53] [.28, .37] [.43, .51] [.36, .44]
##                                                                               
##   .31**      .62**      .40**      .54**      .37**      .51**      .46**     
##   [.26, .36] [.59, .65] [.35, .44] [.50, .58] [.33, .42] [.47, .55] [.42, .50]
##                                                                               
##   .47**      .74**      .58**      .72**      .53**      .66**      .68**     
##   [.43, .51] [.72, .76] [.54, .61] [.70, .75] [.49, .57] [.63, .69] [.65, .70]
##                                                                               
##   .50**      .68**      .61**      .77**      .58**      .67**      .73**     
##   [.46, .54] [.65, .71] [.58, .64] [.75, .79] [.55, .61] [.64, .70] [.71, .75]
##                                                                               
##   .46**      .76**      .55**      .70**      .51**      .66**      .66**     
##   [.42, .50] [.74, .78] [.51, .58] [.67, .72] [.48, .55] [.63, .69] [.62, .68]
##                                                                               
##   .39**      .85**      .42**      .52**      .36**      .61**      .46**     
##   [.34, .43] [.84, .87] [.37, .46] [.48, .56] [.31, .40] [.57, .64] [.41, .50]
##                                                                               
##   11         12         13         14         15         16        
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##                                                                    
##   .53**                                                            
##   [.49, .56]                                                       
##                                                                    
##   .57**      .88**                                                 
##   [.53, .60] [.86, .89]                                            
##                                                                    
##   .79**      .63**      .67**                                      
##   [.77, .81] [.60, .66] [.64, .70]                                 
##                                                                    
##   .84**      .59**      .65**      .86**                           
##   [.82, .85] [.56, .63] [.62, .68] [.84, .87]                      
##                                                                    
##   .78**      .65**      .70**      .88**      .86**                
##   [.76, .80] [.62, .68] [.67, .72] [.87, .89] [.85, .87]           
##                                                                    
##   .56**      .65**      .67**      .73**      .66**      .78**     
##   [.53, .60] [.62, .68] [.64, .70] [.71, .76] [.63, .69] [.76, .80]
##                                                                    
## 
## Note. M and SD are used to represent mean and standard deviation, respectively.
## Values in square brackets indicate the 95% confidence interval.
## The confidence interval is a plausible range of population correlations 
## that could have caused the sample correlation (Cumming, 2014).
##  * indicates p < .05. ** indicates p < .01.
## 

Means

# hard coded as 1, soft as 2

# reshape to long
df_long_dimensions <- tidyr::pivot_longer(df_survey, cols = c("familiarrobot","familiarobjec","safety","competence","comfortable","friendliness","creepycute","badgood","physicalwarm","socialwarm","humanform","humanmotion","socialcompetence","socialness","socialintelligence","intelligence"), names_to = "dimension", values_to = "value")

Means per dimension

# calculate means per dimension 
df_unique%>%
  get_summary_stats(c(badgood,comfortable,competence,creepycute,familiarobjec,familiarrobot,friendliness,humanform,humanmotion,intelligence,physicalwarm,safety,socialcompetence,socialintelligence,socialness,socialwarm), type = "mean_sd")
## # A tibble: 16 × 4
##    variable               n  mean    sd
##    <fct>              <dbl> <dbl> <dbl>
##  1 badgood              119  45.2  24.0
##  2 comfortable          119  33.7  25.1
##  3 competence           119  51.6  29.3
##  4 creepycute           119  29.4  21.7
##  5 familiarobjec        119  32.4  30.1
##  6 familiarrobot        119  22.1  25.9
##  7 friendliness         119  25.3  21.3
##  8 humanform            119  24.1  24.2
##  9 humanmotion          119  25.9  24.3
## 10 intelligence         119  47.6  30.0
## 11 physicalwarm         119  16.2  16.9
## 12 safety               119  44.9  27.1
## 13 socialcompetence     119  23.9  23.1
## 14 socialintelligence   119  24.1  22.5
## 15 socialness           119  21.0  21.0
## 16 socialwarm           119  18.2  18.2

Means per robot type

# means per dimension and robot type
means_robottype <- df_survey%>%
  group_by(robot_type) %>%
  get_summary_stats(c(badgood,comfortable,competence,creepycute,familiarobjec,familiarrobot,friendliness,humanform,humanmotion,intelligence,physicalwarm,safety,socialcompetence,socialintelligence,socialness,socialwarm), type = "mean_sd")

means_robottype
## # A tibble: 32 × 5
##    robot_type variable          n  mean    sd
##    <fct>      <fct>         <dbl> <dbl> <dbl>
##  1 1          badgood         715  51.4  25.5
##  2 1          comfortable     715  49.8  28.6
##  3 1          competence      715  47.7  28.7
##  4 1          creepycute      715  47.7  27.3
##  5 1          familiarobjec   715  40.8  32.4
##  6 1          familiarrobot   716  28.4  30.0
##  7 1          friendliness    715  45.2  29.6
##  8 1          humanform       715  37.0  32.2
##  9 1          humanmotion     715  38.3  31.4
## 10 1          intelligence    715  46.9  28.7
## # ℹ 22 more rows

Means per robot

# means per dimension per robot
means_robot <- df_long_dimensions %>%
  group_by(robot, dimension) %>%
  get_summary_stats(value, type = "mean_sd")

means_robot
## # A tibble: 192 × 6
##    robot  dimension     variable     n  mean    sd
##    <fct>  <chr>         <fct>    <dbl> <dbl> <dbl>
##  1 baxter badgood       value      119  45.2  24.0
##  2 baxter comfortable   value      119  33.7  25.1
##  3 baxter competence    value      119  51.6  29.3
##  4 baxter creepycute    value      119  29.4  21.7
##  5 baxter familiarobjec value      119  32.4  30.1
##  6 baxter familiarrobot value      119  22.1  25.9
##  7 baxter friendliness  value      119  25.3  21.3
##  8 baxter humanform     value      119  24.1  24.2
##  9 baxter humanmotion   value      119  25.9  24.3
## 10 baxter intelligence  value      119  47.6  30.0
## # ℹ 182 more rows

LMERs

# set sum-to-zero contrasts
contrasts(df_survey$robot_type) <- contr.sum 
contrasts(df_survey$robot_type)
##   [,1]
## 1    1
## 2   -1

Bad/good

# run lmer
model_badgood <- lmer(badgood ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

# print results
summary(model_badgood)
## Linear mixed model fit by REML ['lmerMod']
## Formula: badgood ~ robot_type + (1 + robot_type | ParticipantID) + (1 |  
##     robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12498.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.6527 -0.4877 -0.0002  0.5230  3.9687 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 409.91   20.246        
##                robot_type1  34.71    5.892   -0.28
##  robot         (Intercept)  20.16    4.491        
##  Residual                  259.45   16.107        
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   49.663      2.298  21.612
## robot_type1    1.734      1.467   1.182
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.084
# calculate cCIs
confint(model_badgood, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %      97.5 %
## .sig01      17.7419707 23.17567901
## .sig02      -0.4905815 -0.05390377
## .sig03       4.7147547  7.19896439
## .sig04       2.7434145  6.99238369
## .sigma      15.4799339 16.78058389
## (Intercept) 45.1931221 54.13322398
## robot_type1 -1.1898921  4.65660255
# model diagnostics
check_model(model_badgood)

res_model_badgood <- residuals(model_badgood)
qqPlot(res_model_badgood)

##  17 315 
##  16 312

Comfortable

model_comfortable<- lmer(comfortable ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_comfortable)
## Linear mixed model fit by REML ['lmerMod']
## Formula: comfortable ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 13065.5
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.1462 -0.5935  0.0200  0.6321  4.1633 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 375.54   19.379        
##                robot_type1  25.48    5.047   -0.10
##  robot         (Intercept)  54.15    7.359        
##  Residual                  413.43   20.333        
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   51.789      2.817   18.39
## robot_type1   -2.059      2.239   -0.92
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.013
confint(model_comfortable, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %     97.5 %
## .sig01      16.9036073 22.3072049
## .sig02      -0.3798457  0.1864721
## .sig03       3.4645074  6.6310055
## .sig04       4.5878947 11.0938361
## .sigma      19.5402478 21.1825134
## (Intercept) 46.3295831 57.2484193
## robot_type1 -6.4883427  2.3694607
# model diagnostics
check_model(model_comfortable)

res_model_comfortable <- residuals(model_comfortable)
qqPlot(res_model_comfortable)

## 1433 1195 
## 1424 1188

Competence

model_competence<- lmer(competence ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_competence)
## Linear mixed model fit by REML ['lmerMod']
## Formula: competence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12556.4
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.2673 -0.5243 -0.0389  0.5632  3.2183 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 380.26   19.500       
##                robot_type1  65.35    8.084   0.05
##  robot         (Intercept)  49.48    7.034       
##  Residual                  259.56   16.111       
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   39.099      2.734  14.299
## robot_type1    8.560      2.203   3.886
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.010
confint(model_competence, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %     97.5 %
## .sig01      17.0947027 22.3570523
## .sig02      -0.1666206  0.2527308
## .sig03       6.8062893  9.5747924
## .sig04       4.4699116 10.6047092
## .sigma      15.4830389 16.7835287
## (Intercept) 33.7892069 44.4087930
## robot_type1  4.2083386 12.9118990
# model diagnostics
check_model(model_competence)

res_model_competence <- residuals(model_competence)
qqPlot(res_model_competence)

## 51  2 
## 50  1

Creepy/Cute

model_creepycute<- lmer(creepycute ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_creepycute)
## Linear mixed model fit by REML ['lmerMod']
## Formula: creepycute ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 13264.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.2066 -0.6245  0.0021  0.6606  3.6145 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 282.54   16.809        
##                robot_type1  18.60    4.313   -0.44
##  robot         (Intercept)  67.51    8.216        
##  Residual                  502.14   22.409        
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   50.986      2.887  17.660
## robot_type1   -3.231      2.476  -1.305
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.037
confint(model_creepycute, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %      97.5 %
## .sig01      14.5460860 19.48412266
## .sig02      -0.8418928 -0.09885304
## .sig03       2.2240717  6.09776117
## .sig04       5.1011414 12.28761140
## .sigma      21.5357211 23.34420865
## (Intercept) 45.3925030 56.58040160
## robot_type1 -8.1034057  1.64251360
# model diagnostics
check_model(model_creepycute)

res_model_creepycute <- residuals(model_creepycute)
qqPlot(res_model_creepycute)

##  212 1194 
##  210 1187

Familiarity objects

model_familiarobj<- lmer(familiarobjec ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_familiarobj)
## Linear mixed model fit by REML ['lmerMod']
## Formula: familiarobjec ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 13341.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.2023 -0.6073 -0.0501  0.5620  3.5112 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 531.08   23.045       
##                robot_type1  37.33    6.110   0.05
##  robot         (Intercept)  87.73    9.366       
##  Residual                  489.82   22.132       
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)  40.7404     3.4761  11.720
## robot_type1   0.1626     2.8223   0.058
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.006
confint(model_familiarobj, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                 2.5 %     97.5 %
## .sig01      20.145787 26.4913523
## .sig02      -0.215264  0.3162658
## .sig03       4.449626  7.8429488
## .sig04       5.906282 14.0283231
## .sigma      21.268678 23.0566533
## (Intercept) 34.004460 47.4766022
## robot_type1 -5.411589  5.7367428
# model diagnostics
check_model(model_familiarobj)

res_model_familiarobj <- residuals(model_familiarobj)
qqPlot(res_model_familiarobj)

##  466 1338 
##  463 1329

Familiarity robots

model_familiarrobo<- lmer(familiarrobot ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_familiarrobo)
## Linear mixed model fit by REML ['lmerMod']
## Formula: familiarrobot ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12961.2
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.6592 -0.5612 -0.0880  0.3602  4.2934 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 379.00   19.468       
##                robot_type1  39.19    6.260   0.05
##  robot         (Intercept)  52.23    7.227       
##  Residual                  372.54   19.301       
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   24.167      2.788   8.667
## robot_type1    4.463      2.223   2.008
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.008
confint(model_familiarrobo, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                   2.5 %     97.5 %
## .sig01      16.98365514 22.4081905
## .sig02      -0.20149171  0.2956393
## .sig03       4.86568492  7.7820548
## .sig04       4.52763225 10.9033872
## .sigma      18.54875159 20.1077151
## (Intercept) 18.76006426 29.5756474
## robot_type1  0.06750653  8.8574180
# model diagnostics
check_model(model_familiarrobo)

res_model_familiarrobo <- residuals(model_familiarrobo)
qqPlot(res_model_familiarrobo) # slight deviation

## 1440  826 
## 1431  821
# robust lmer
model_familiarrobo_robust <- rlmer(familiarrobot ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_familiarrobo_robust)
## Robust linear mixed model fit by DAStau 
## Formula: familiarrobot ~ robot_type + (1 + robot_type | ParticipantID) +      (1 | robot) 
##    Data: df_survey 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -5.3577 -0.5257 -0.0499  0.4935  6.7033 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 337.38   18.368       
##                robot_type1  50.95    7.138   0.24
##  robot         (Intercept)  33.42    5.781       
##  Residual                  193.47   13.909       
## Number of obs: 1431, groups: ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   20.472      2.442   8.382
## robot_type1    4.798      1.874   2.561
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.058 
## 
## Robustness weights for the residuals: 
##  1126 weights are ~= 1. The remaining 305 ones are summarized as
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.201   0.479   0.651   0.660   0.901   0.998 
## 
## Robustness weights for the random effects: 
##  224 weights are ~= 1. The remaining 28 ones are summarized as
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.195   0.367   0.588   0.572   0.790   0.884 
## 
## Rho functions used for fitting:
##   Residuals:
##     eff: smoothed Huber (k = 1.345, s = 10) 
##     sig: smoothed Huber, Proposal 2 (k = 1.345, s = 10) 
##   Random Effects, variance component 1 (ParticipantID):
##     eff: smoothed Huber (k = 5.14, s = 10) 
##     vcp: smoothed Huber (k = 5.14, s = 10) 
##   Random Effects, variance component 2 (robot):
##     eff: smoothed Huber (k = 1.345, s = 10) 
##     vcp: smoothed Huber, Proposal 2 (k = 1.345, s = 10)
# calculate Wald confidence interval, since assumptins are violated, https://gist.github.com/kamermanpr/aaa598485b6e990017375359ff5f4533
confint.rlmerMod <- function(object, level = 0.95) {
  
  # Extract beta coefficients
  beta <- fixef(object)
  
  # Extract names of coefficients
  parm <- names(beta)
  
  # Extract standard errors for the coefficients
  se <- sqrt(diag(vcov(object)))
  
  # Set level of confidence interval
  z <- qnorm((1 + level) / 2)
  
  # Calculate CI
  ctab <- cbind(beta - (z * se), 
                beta + (z * se))
  
  # label column names
  colnames(ctab) <- c(paste(100 * ((1 - level) / 2), '%'),
                      paste(100 * ((1 + level) / 2), '%'))
  
  # Output
  return(ctab[parm, ])
}

confint.rlmerMod(model_familiarrobo_robust) 
##                 2.5 %   97.5 %
## (Intercept) 15.685195 25.25929
## robot_type1  1.125698  8.46971
check_model(model_familiarrobo_robust)
## Failed to compute posterior predictive checks with `re_formula=NULL`.
##   Trying again with `re_formula=NA` now.

Friendliness

model_friendliness<- lmer(friendliness ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_friendliness)
## Linear mixed model fit by REML ['lmerMod']
## Formula: friendliness ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12909.2
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.9366 -0.5765  0.0519  0.6305  3.7754 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 389.31   19.731        
##                robot_type1  21.03    4.586   -0.15
##  robot         (Intercept) 119.99   10.954        
##  Residual                  364.76   19.099        
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   48.459      3.675  13.188
## robot_type1   -3.205      3.230  -0.992
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.010
confint(model_friendliness, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %     97.5 %
## .sig01      17.2567443 22.7001680
## .sig02      -0.4307711  0.1408623
## .sig03       3.0916041  6.0675611
## .sig04       6.9744268 16.1809028
## .sigma      18.3541941 19.8955036
## (Intercept) 41.3379499 55.5789793
## robot_type1 -9.5492336  3.1398194
# model diagnostics
check_model(model_friendliness)

res_model_friendliness <- residuals(model_friendliness)
qqPlot(res_model_friendliness)

## 212 572 
## 210 569

Human-like form

model_humanform<- lmer(humanform ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_humanform)
## Linear mixed model fit by REML ['lmerMod']
## Formula: humanform ~ robot_type + (1 + robot_type | ParticipantID) + (1 |  
##     robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12609.7
## 
## Scaled residuals: 
##    Min     1Q Median     3Q    Max 
## -3.407 -0.552 -0.078  0.531  3.157 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 227.57   15.085       
##                robot_type1  33.58    5.795   0.05
##  robot         (Intercept) 256.28   16.009       
##  Residual                  292.39   17.099       
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   27.327      4.844   5.642
## robot_type1    9.500      4.674   2.033
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.002
confint(model_humanform, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %     97.5 %
## .sig01      13.1449490 17.4327345
## .sig02      -0.1988084  0.2905447
## .sig03       4.5600999  7.1672777
## .sig04      10.2415270 23.3488406
## .sigma      16.4324614 17.8132097
## (Intercept) 17.9236271 36.7297569
## robot_type1  0.3874658 18.6121406
# model diagnostics
check_model(model_humanform)

res_model_humanform <- residuals(model_humanform)
qqPlot(res_model_humanform)

## 276  83 
## 273  82

Human-like motion

model_humanmotion<- lmer(humanmotion ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_humanmotion)
## Linear mixed model fit by REML ['lmerMod']
## Formula: humanmotion ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12725.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.0855 -0.5919 -0.0631  0.5364  3.4856 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 259.01   16.094        
##                robot_type1  26.98    5.194   -0.01
##  robot         (Intercept) 219.41   14.813        
##  Residual                  321.31   17.925        
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   30.038      4.546   6.607
## robot_type1    8.209      4.328   1.897
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.000
confint(model_humanmotion, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %     97.5 %
## .sig01      14.0319190 18.5840981
## .sig02      -0.2672357  0.2572067
## .sig03       3.8845383  6.5913556
## .sig04       9.4694747 21.6496210
## .sigma      17.2262477 18.6728079
## (Intercept) 21.2128780 38.8623934
## robot_type1 -0.2417754 16.6601034
# model diagnostics
check_model(model_humanmotion)

res_model_humanmotion <- residuals(model_humanmotion)
qqPlot(res_model_humanmotion)

##  834 1171 
##  829 1164

Intelligence

model_intelligence<- lmer(intelligence ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_intelligence)
## Linear mixed model fit by REML ['lmerMod']
## Formula: intelligence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12546.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.1766 -0.5420 -0.0387  0.5456  3.1854 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 350.25   18.715       
##                robot_type1  58.67    7.659   0.07
##  robot         (Intercept)  55.18    7.428       
##  Residual                  261.32   16.166       
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   37.572      2.775  13.538
## robot_type1    9.176      2.296   3.997
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.012
confint(model_intelligence, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %    97.5 %
## .sig01      16.3956902 21.475240
## .sig02      -0.1504999  0.275638
## .sig03       6.4071824  9.114086
## .sig04       4.7229858 11.144351
## .sigma      15.5353797 16.840410
## (Intercept) 32.1851444 42.959327
## robot_type1  4.6461884 13.706154
# model diagnostics
check_model(model_intelligence)

res_model_intelligence <- residuals(model_intelligence)
qqPlot(res_model_intelligence)

## 451  51 
## 448  50

Physical warmth

model_physicalwarm<- lmer(physicalwarm ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_physicalwarm)
## Linear mixed model fit by REML ['lmerMod']
## Formula: physicalwarm ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12753.4
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.3884 -0.6244 -0.0490  0.5626  3.3612 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 381.3    19.53         
##                robot_type1  36.0     6.00    -0.26
##  robot         (Intercept) 100.1    10.00         
##  Residual                  315.9    17.77         
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   38.729      3.427  11.302
## robot_type1   -7.064      2.977  -2.373
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.025
confint(model_physicalwarm, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                   2.5 %      97.5 %
## .sig01       17.0981279 22.43719205
## .sig02       -0.4808024 -0.02032746
## .sig03        4.7099143  7.42684839
## .sig04        6.3779974 14.81953000
## .sigma       17.0814651 18.51685831
## (Intercept)  32.0863380 45.37180322
## robot_type1 -12.9182953 -1.20979522
# model diagnostics
check_model(model_physicalwarm)

res_model_physicalwarm <- residuals(model_physicalwarm)
qqPlot(res_model_physicalwarm)

## 722 724 
## 717 719

Safety

model_safety<- lmer(safety ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_safety)
## Linear mixed model fit by REML ['lmerMod']
## Formula: safety ~ robot_type + (1 + robot_type | ParticipantID) + (1 |  
##     robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12719
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.3081 -0.5137  0.0407  0.5593  4.3948 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 471.04   21.703        
##                robot_type1  26.74    5.171   -0.32
##  robot         (Intercept)  12.89    3.591        
##  Residual                  311.22   17.641        
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   55.700      2.285  24.378
## robot_type1   -2.266      1.231  -1.841
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.105
confint(model_safety, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %      97.5 %
## .sig01      19.0035576 24.83891916
## .sig02      -0.5431764 -0.06122011
## .sig03       3.8718302  6.53142892
## .sig04       2.0386444  5.78063756
## .sigma      16.9548175 18.37891964
## (Intercept) 51.2444665 60.15545951
## robot_type1 -4.7291893  0.19706748
# model diagnostics
check_model(model_safety)

res_model_safety <- residuals(model_safety)
qqPlot(res_model_safety)

##  21 731 
##  20 726

Social competence

model_socialcompetence<- lmer(socialcompetence ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_socialcompetence)
## Linear mixed model fit by REML ['lmerMod']
## Formula: socialcompetence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12637
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.6458 -0.6183 -0.0222  0.5555  4.2547 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 385.94   19.645        
##                robot_type1  18.24    4.271   -0.04
##  robot         (Intercept)  90.39    9.507        
##  Residual                  296.13   17.208        
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   34.785      3.310  10.508
## robot_type1    2.721      2.809   0.969
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.003
confint(model_socialcompetence, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %    97.5 %
## .sig01      17.2127910 22.557942
## .sig02      -0.3154945  0.245470
## .sig03       2.9431267  5.606762
## .sig04       6.0580665 14.095964
## .sigma      16.5373709 17.926527
## (Intercept) 28.3713233 41.197939
## robot_type1 -2.8120514  8.254445
# model diagnostics
check_model(model_socialcompetence)

res_model_socialcompetence <- residuals(model_socialcompetence)
qqPlot(res_model_socialcompetence)

## 1172  451 
## 1165  448

Social intelligence

model_socialintelligence<- lmer(socialintelligence ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_socialintelligence)
## Linear mixed model fit by REML ['lmerMod']
## Formula: socialintelligence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12523.2
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.5439 -0.6248  0.0013  0.5593  3.3147 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 391.89   19.796       
##                robot_type1  27.31    5.226   0.01
##  robot         (Intercept)  84.06    9.168       
##  Residual                  265.12   16.283       
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   34.352      3.234  10.622
## robot_type1    3.792      2.724   1.392
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.001
confint(model_socialintelligence, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %     97.5 %
## .sig01      17.3629474 22.7090182
## .sig02      -0.2387262  0.2501142
## .sig03       4.0490872  6.5124651
## .sig04       5.8533862 13.6112617
## .sigma      15.6478649 16.9622398
## (Intercept) 28.0850076 40.6189222
## robot_type1 -1.5758420  9.1593222
# model diagnostics
check_model(model_socialintelligence)

res_model_socialintelligence <- residuals(model_socialintelligence)
qqPlot(res_model_socialintelligence)

## 171 451 
## 169 448

Socialness

model_socialness<- lmer(socialness ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_socialness)
## Linear mixed model fit by REML ['lmerMod']
## Formula: socialness ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12755.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.8639 -0.6319 -0.0289  0.5779  4.4368 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 410.25   20.255        
##                robot_type1  21.79    4.668   -0.31
##  robot         (Intercept) 106.81   10.335        
##  Residual                  322.25   17.951        
## Number of obs: 1431, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)  37.4337     3.5423  10.567
## robot_type1   0.7259     3.0510   0.238
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.023
confint(model_socialness, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                  2.5 %      97.5 %
## .sig01      17.7446196 23.26311609
## .sig02      -0.5615289 -0.03888504
## .sig03       3.3111821  6.05735892
## .sig04       6.5902617 15.29568438
## .sigma      17.2516974 18.70046512
## (Intercept) 30.5701628 44.29704044
## robot_type1 -5.2769402  6.72870636
# model diagnostics
check_model(model_socialness)

res_model_social <- residuals(model_socialness)
qqPlot(res_model_social)

## 212 931 
## 210 925

Social warmth

model_socialwarm<- lmer(socialwarm ~ robot_type + (1 + robot_type | ParticipantID) + (1|robot), data = df_survey)

summary(model_socialwarm)
## Linear mixed model fit by REML ['lmerMod']
## Formula: socialwarm ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
## REML criterion at convergence: 12881.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.5499 -0.6378 -0.0109  0.6306  3.4603 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 401.45   20.036        
##                robot_type1  28.19    5.309   -0.27
##  robot         (Intercept) 121.44   11.020        
##  Residual                  349.78   18.702        
## Number of obs: 1432, groups:  ParticipantID, 120; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   39.778      3.703  10.742
## robot_type1   -2.064      3.256  -0.634
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.020
confint(model_socialwarm, level = 0.95, method = 'profile')
## Computing profile confidence intervals ...
##                 2.5 %       97.5 %
## .sig01      17.537292 23.035352227
## .sig02      -0.506202 -0.003058121
## .sig03       3.931684  6.764499257
## .sig04       7.026514 16.281315422
## .sigma      17.973572 19.482695663
## (Intercept) 32.600204 46.954609807
## robot_type1 -8.460365  4.332820515
# model diagnostics
check_model(model_socialwarm)

res_model_socialwarm <- residuals(model_socialwarm)
qqPlot(res_model_socialwarm)

##  931 1194 
##  925 1187

CLMMs

Bad/good

model_clmm_badgood <- clmm(rankbadgood ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_badgood)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: rankbadgood ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1392 -3359.55 6751.10 2504(7512) 1.99e-03 9.5e+02
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.4481   0.6694          
##                robot_type2 1.7527   1.3239   -1.000 
##  robot         (Intercept) 0.3722   0.6101          
## Number of groups:  ParticipantID 116,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## robot_type1  -0.2451     0.1925  -1.274    0.203
## 
## Threshold coefficients:
##        Estimate Std. Error z value
## 1|2   -2.737446   0.204793 -13.367
## 2|3   -1.876557   0.193108  -9.718
## 3|4   -1.298412   0.188858  -6.875
## 4|5   -0.826980   0.186752  -4.428
## 5|6   -0.404775   0.185700  -2.180
## 6|7   -0.001065   0.185370  -0.006
## 7|8    0.403493   0.185676   2.173
## 8|9    0.825262   0.186690   4.420
## 9|10   1.292708   0.188725   6.850
## 10|11  1.862574   0.192815   9.660
## 11|12  2.719460   0.204394  13.305
## (48 observations deleted due to missingness)
# profile CI
confint(model_clmm_badgood, level=0.95, type=profile)
##                   2.5 %      97.5 %
## 1|2         -3.13883233 -2.33605937
## 2|3         -2.25504269 -1.49807170
## 3|4         -1.66856588 -0.92825736
## 4|5         -1.19300782 -0.46095207
## 5|6         -0.76873994 -0.04081056
## 6|7         -0.36438305  0.36225221
## 7|8          0.03957443  0.76741068
## 8|9          0.45935631  1.19116739
## 9|10         0.92281384  1.66260266
## 10|11        1.48466358  2.24048494
## 11|12        2.31885557  3.12006391
## robot_type1 -0.62235947  0.13207525

Comfortable

model_clmm_comfortable <- clmm(rankcomfortable ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_comfortable)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: rankcomfortable ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1404 -3386.61 6805.23 2936(8808) 3.42e-03 1.2e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.3469   0.5890          
##                robot_type2 1.3875   1.1779   -1.000 
##  robot         (Intercept) 0.4806   0.6932          
## Number of groups:  ParticipantID 117,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## robot_type1   0.2013     0.2127   0.947    0.344
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2   -2.72482    0.22554 -12.082
## 2|3   -1.85449    0.21486  -8.631
## 3|4   -1.26971    0.21105  -6.016
## 4|5   -0.80050    0.20927  -3.825
## 5|6   -0.38574    0.20843  -1.851
## 6|7    0.01185    0.20821   0.057
## 7|8    0.41107    0.20853   1.971
## 8|9    0.83084    0.20948   3.966
## 9|10   1.29769    0.21132   6.141
## 10|11  1.86836    0.21504   8.689
## 11|12  2.72986    0.22563  12.099
## (36 observations deleted due to missingness)
# profile CI
confint(model_clmm_comfortable, level=0.95, type=profile)
##                    2.5 %      97.5 %
## 1|2         -3.166859878 -2.28277618
## 2|3         -2.275618663 -1.43336449
## 3|4         -1.683361302 -0.85605791
## 4|5         -1.210648394 -0.39034346
## 5|6         -0.794262092  0.02277311
## 6|7         -0.396230077  0.41993275
## 7|8          0.002352552  0.81977754
## 8|9          0.420278946  1.24140876
## 9|10         0.883510684  1.71186751
## 10|11        1.446895653  2.28983000
## 11|12        2.287633987  3.17207766
## robot_type1 -0.215508394  0.61808853

Competence

model_clmm_competence <- clmm(rankcompetence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_competence)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: rankcompetence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1380 -3080.40 6192.80 2366(7099) 3.38e-03 1.4e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.2778   0.5271          
##                robot_type2 1.0806   1.0395   -1.000 
##  robot         (Intercept) 0.8639   0.9295          
## Number of groups:  ParticipantID 115,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value  Pr(>|z|)    
## robot_type1  -1.2233     0.2785  -4.393 0.0000112 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2    -3.4640     0.2966 -11.678
## 2|3    -2.4122     0.2857  -8.444
## 3|4    -1.6247     0.2805  -5.793
## 4|5    -0.9616     0.2777  -3.462
## 5|6    -0.3815     0.2765  -1.380
## 6|7     0.1464     0.2761   0.530
## 7|8     0.6473     0.2764   2.342
## 8|9     1.1408     0.2773   4.114
## 9|10    1.6670     0.2789   5.977
## 10|11   2.2962     0.2822   8.138
## 11|12   3.2211     0.2913  11.056
## (60 observations deleted due to missingness)
# profile CI
confint(model_clmm_competence, level=0.95, type=profile)
##                  2.5 %     97.5 %
## 1|2         -4.0453556 -2.8826051
## 2|3         -2.9720920 -1.8522739
## 3|4         -2.1743491 -1.0749818
## 4|5         -1.5059570 -0.4172424
## 5|6         -0.9233225  0.1603760
## 6|7         -0.3946961  0.6875896
## 7|8          0.1056124  1.1890868
## 8|9          0.5973252  1.6842008
## 9|10         1.1203373  2.2136209
## 10|11        1.7431655  2.8492054
## 11|12        2.6501309  3.7921617
## robot_type1 -1.7690344 -0.6774831

Creepy/Cute

model_clmm_creepycute <- clmm(rankcreepycute ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_creepycute)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: rankcreepycute ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1404 -3340.31 6712.62 2171(6514) 2.26e-03 1.6e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.2381   0.4880          
##                robot_type2 1.0448   1.0222   -1.000 
##  robot         (Intercept) 0.6664   0.8164          
## Number of groups:  ParticipantID 117,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## robot_type1   0.4248     0.2451   1.733    0.083 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2   -2.81878    0.25880 -10.892
## 2|3   -1.92118    0.24902  -7.715
## 3|4   -1.31370    0.24552  -5.351
## 4|5   -0.82162    0.24385  -3.369
## 5|6   -0.38767    0.24305  -1.595
## 6|7    0.02351    0.24281   0.097
## 7|8    0.43455    0.24306   1.788
## 8|9    0.87246    0.24389   3.577
## 9|10   1.35770    0.24557   5.529
## 10|11  1.94249    0.24893   7.803
## 11|12  2.81699    0.25840  10.902
## (36 observations deleted due to missingness)
# profile CI
confint(model_clmm_creepycute, level=0.95, type=profile)
##                   2.5 %      97.5 %
## 1|2         -3.32602833 -2.31153959
## 2|3         -2.40924829 -1.43310832
## 3|4         -1.79490712 -0.83248758
## 4|5         -1.29954908 -0.34368199
## 5|6         -0.86404608  0.08869776
## 6|7         -0.45239552  0.49940949
## 7|8         -0.04183220  0.91093921
## 8|9          0.39445054  1.35047757
## 9|10         0.87638513  1.83900512
## 10|11        1.45459240  2.43038504
## 11|12        2.31052902  3.32345383
## robot_type1 -0.05554627  0.90514246

Friendliness

model_clmm_friendliness <- clmm(rankfriendliness ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_friendliness)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: rankfriendliness ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter       max.grad cond.H 
##  logit flexible  1392 -3270.64 6573.28 2544(10107) 1.43e-03 2.4e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.3784   0.6152          
##                robot_type2 1.4004   1.1834   -1.000 
##  robot         (Intercept) 1.0840   1.0412          
## Number of groups:  ParticipantID 116,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## robot_type1   0.2105     0.3092   0.681    0.496
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2   -2.91078    0.31966  -9.106
## 2|3   -1.99268    0.31157  -6.396
## 3|4   -1.37629    0.30867  -4.459
## 4|5   -0.88065    0.30730  -2.866
## 5|6   -0.44008    0.30665  -1.435
## 6|7   -0.01818    0.30647  -0.059
## 7|8    0.40625    0.30668   1.325
## 8|9    0.85823    0.30739   2.792
## 9|10   1.36953    0.30884   4.434
## 10|11  2.00849    0.31193   6.439
## 11|12  2.95643    0.32049   9.225
## (48 observations deleted due to missingness)
# profile CI
confint(model_clmm_friendliness, level=0.95, type=profile)
##                  2.5 %     97.5 %
## 1|2         -3.5373132 -2.2842512
## 2|3         -2.6033420 -1.3820264
## 3|4         -1.9812700 -0.7713103
## 4|5         -1.4829419 -0.2783534
## 5|6         -1.0411107  0.1609548
## 6|7         -0.6188457  0.5824842
## 7|8         -0.1948384  1.0073361
## 8|9          0.2557643  1.4606915
## 9|10         0.7642179  1.9748374
## 10|11        1.3971164  2.6198611
## 11|12        2.3282860  3.5845789
## robot_type1 -0.3956088  0.8165198

Human-like form

model_clmm_humanform <- clmm(rankhumanform ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_humanform) 
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: rankhumanform ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter       max.grad cond.H 
##  logit flexible  1404 -2935.41 5902.82 2393(15180) 8.51e-04 5.3e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.2180   0.4669          
##                robot_type2 0.7767   0.8813   -1.000 
##  robot         (Intercept) 3.6940   1.9220          
## Number of groups:  ParticipantID 117,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## robot_type1  -1.2405     0.5597  -2.216   0.0267 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2    -4.6614     0.5825  -8.003
## 2|3    -3.1100     0.5707  -5.449
## 3|4    -1.8179     0.5639  -3.224
## 4|5    -0.8361     0.5610  -1.491
## 5|6    -0.0900     0.5599  -0.161
## 6|7     0.5008     0.5597   0.895
## 7|8     1.0287     0.5598   1.838
## 8|9     1.5399     0.5602   2.749
## 9|10    2.0727     0.5610   3.694
## 10|11   2.7015     0.5626   4.802
## 11|12   3.6266     0.5671   6.395
## (36 observations deleted due to missingness)
# profile CI
confint(model_clmm_humanform, level=0.95, type=profile)
##                  2.5 %     97.5 %
## 1|2         -5.8030658 -3.5197492
## 2|3         -4.2286043 -1.9913377
## 3|4         -2.9230792 -0.7127009
## 4|5         -1.9355868  0.2633393
## 5|6         -1.1873809  1.0073823
## 6|7         -0.5960883  1.5977235
## 7|8         -0.0684519  2.1258953
## 8|9          0.4419152  2.6379649
## 9|10         0.9731323  3.1723450
## 10|11        1.5988405  3.8042330
## 11|12        2.5151346  4.7379982
## robot_type1 -2.3374015 -0.1435275

Intelligence

model_clmm_intelligence <- clmm(rankintelligence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_intelligence)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: rankintelligence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1380 -3045.90 6123.79 2308(9215) 4.00e-03 1.7e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.1632   0.4040          
##                robot_type2 0.6864   0.8285   -1.000 
##  robot         (Intercept) 1.0696   1.0342          
## Number of groups:  ParticipantID 115,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value  Pr(>|z|)    
## robot_type1  -1.2987     0.3065  -4.237 0.0000227 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2    -3.5879     0.3261 -11.004
## 2|3    -2.4886     0.3153  -7.892
## 3|4    -1.6463     0.3100  -5.310
## 4|5    -0.9507     0.3074  -3.093
## 5|6    -0.3478     0.3061  -1.136
## 6|7     0.1903     0.3057   0.622
## 7|8     0.6895     0.3060   2.253
## 8|9     1.1794     0.3068   3.844
## 9|10    1.7064     0.3083   5.536
## 10|11   2.3472     0.3113   7.539
## 11|12   3.2938     0.3201  10.289
## (60 observations deleted due to missingness)
# profile CI
confint(model_clmm_intelligence, level=0.95, type=profile)
##                   2.5 %     97.5 %
## 1|2         -4.22695880 -2.9488149
## 2|3         -3.10661393 -1.8704901
## 3|4         -2.25398257 -1.0386174
## 4|5         -1.55318821 -0.3482907
## 5|6         -0.94770958  0.2521954
## 6|7         -0.40894617  0.7895335
## 7|8          0.08971773  1.2892042
## 8|9          0.57808159  1.7806269
## 9|10         1.10224967  2.3106322
## 10|11        1.73701591  2.9574790
## 11|12        2.66635938  3.9211657
## robot_type1 -1.89953521 -0.6979263

Physical warmth

model_clmm_physicalwarm <- clmm(rankphysicalwarmth ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_physicalwarm)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: rankphysicalwarmth ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1404 -3237.64 6507.28 2444(9589) 3.80e-03 1.8e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.4352   0.6597          
##                robot_type2 1.7105   1.3079   -1.000 
##  robot         (Intercept) 0.9565   0.9780          
## Number of groups:  ParticipantID 117,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## robot_type1   0.7435     0.2931   2.537   0.0112 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2   -3.10173    0.30433 -10.192
## 2|3   -2.13370    0.29510  -7.230
## 3|4   -1.47136    0.29170  -5.044
## 4|5   -0.92535    0.29002  -3.191
## 5|6   -0.43821    0.28919  -1.515
## 6|7    0.02071    0.28894   0.072
## 7|8    0.47962    0.28919   1.658
## 8|9    0.95340    0.28998   3.288
## 9|10   1.46968    0.29151   5.042
## 10|11  2.10627    0.29469   7.147
## 11|12  3.07145    0.30388  10.107
## (36 observations deleted due to missingness)
# profile CI
confint(model_clmm_physicalwarm, level=0.95, type=profile)
##                  2.5 %     97.5 %
## 1|2         -3.6982061 -2.5052553
## 2|3         -2.7120807 -1.5553205
## 3|4         -2.0430755 -0.8996402
## 4|5         -1.4937861 -0.3569164
## 5|6         -1.0050169  0.1285983
## 6|7         -0.5456009  0.5870127
## 7|8         -0.0871856  1.0464217
## 8|9          0.3850548  1.5217463
## 9|10         0.8983254  2.0410287
## 10|11        1.5286886  2.6838598
## 11|12        2.4758494  3.6670455
## robot_type1  0.1691235  1.3179116

Safety

model_clmm_safety <- clmm(ranksafety ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_safety)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: ranksafety ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1404 -3379.92 6791.83 2600(7800) 8.39e-03 6.7e+02
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.6917   0.8317          
##                robot_type2 2.6984   1.6427   -1.000 
##  robot         (Intercept) 0.2620   0.5119          
## Number of groups:  ParticipantID 117,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## robot_type1   0.2727     0.1727   1.578    0.114
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2   -2.77572    0.18067 -15.364
## 2|3   -1.91718    0.16757 -11.441
## 3|4   -1.33511    0.16276  -8.203
## 4|5   -0.86063    0.16039  -5.366
## 5|6   -0.43246    0.15920  -2.717
## 6|7   -0.01977    0.15884  -0.124
## 7|8    0.39287    0.15925   2.467
## 8|9    0.82325    0.16049   5.130
## 9|10   1.30480    0.16294   8.008
## 10|11  1.89920    0.16796  11.308
## 11|12  2.79467    0.18206  15.350
## (36 observations deleted due to missingness)
# profile CI
confint(model_clmm_safety, level=0.95, type=profile)
##                   2.5 %     97.5 %
## 1|2         -3.12982417 -2.4216181
## 2|3         -2.24561685 -1.5887405
## 3|4         -1.65411789 -1.0161012
## 4|5         -1.17499052 -0.5462637
## 5|6         -0.74448670 -0.1204431
## 6|7         -0.33109711  0.2915511
## 7|8          0.08074780  0.7049941
## 8|9          0.50870586  1.1377955
## 9|10         0.98543956  1.6241531
## 10|11        1.57001427  2.2283921
## 11|12        2.43783471  3.1514956
## robot_type1 -0.06590834  0.6112097

Social competence

model_clmm_socialcomp <- clmm(ranksocialcompetence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_socialcomp)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: 
## ranksocialcompetence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1404 -3272.93 6577.86 2434(9530) 1.45e-03 2.2e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.3103   0.5571          
##                robot_type2 1.1479   1.0714   -1.000 
##  robot         (Intercept) 1.0613   1.0302          
## Number of groups:  ParticipantID 117,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## robot_type1  -0.4711     0.3054  -1.542    0.123
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2   -3.07393    0.31876  -9.644
## 2|3   -2.10321    0.30989  -6.787
## 3|4   -1.41794    0.30633  -4.629
## 4|5   -0.85132    0.30454  -2.795
## 5|6   -0.35496    0.30370  -1.169
## 6|7    0.09624    0.30348   0.317
## 7|8    0.53011    0.30368   1.746
## 8|9    0.97044    0.30431   3.189
## 9|10   1.44954    0.30554   4.744
## 10|11  2.03481    0.30809   6.605
## 11|12  2.90417    0.31546   9.206
## (36 observations deleted due to missingness)
# profile CI
confint(model_clmm_socialcomp, level=0.95, type=profile)
##                   2.5 %     97.5 %
## 1|2         -3.69867546 -2.4491750
## 2|3         -2.71058957 -1.4958240
## 3|4         -2.01832478 -0.8175481
## 4|5         -1.44820082 -0.2544430
## 5|6         -0.95020979  0.2402839
## 6|7         -0.49855943  0.6910448
## 7|8         -0.06510177  1.1253202
## 8|9          0.37399707  1.5668852
## 9|10         0.85068805  2.0483979
## 10|11        1.43096073  2.6386692
## 11|12        2.28586900  3.5224634
## robot_type1 -1.06970680  0.1275498

Social intelligence

model_clmm_socialint <- clmm(ranksocialintelligence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_socialint)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: 
## ranksocialintelligence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1392 -3244.48 6520.97 2284(8980) 4.41e-03 1.9e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.3044   0.5517          
##                robot_type2 1.1493   1.0721   -1.000 
##  robot         (Intercept) 0.8853   0.9409          
## Number of groups:  ParticipantID 116,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## robot_type1  -0.6151     0.2806  -2.192   0.0284 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2   -3.06604    0.29520 -10.386
## 2|3   -2.08170    0.28525  -7.298
## 3|4   -1.39901    0.28135  -4.973
## 4|5   -0.84602    0.27943  -3.028
## 5|6   -0.36164    0.27851  -1.298
## 6|7    0.08334    0.27822   0.300
## 7|8    0.51211    0.27843   1.839
## 8|9    0.95639    0.27914   3.426
## 9|10   1.44947    0.28060   5.166
## 10|11  2.04387    0.28355   7.208
## 11|12  2.91256    0.29172   9.984
## (48 observations deleted due to missingness)
# profile CI
confint(model_clmm_socialint, level=0.95, type=profile)
##                   2.5 %      97.5 %
## 1|2         -3.64462491 -2.48744567
## 2|3         -2.64077657 -1.52262101
## 3|4         -1.95043490 -0.84758275
## 4|5         -1.39370267 -0.29833771
## 5|6         -0.90751731  0.18423928
## 6|7         -0.46197421  0.62864705
## 7|8         -0.03359393  1.05781971
## 8|9          0.40927961  1.50350038
## 9|10         0.89949928  1.99943982
## 10|11        1.48812615  2.59960624
## 11|12        2.34080682  3.48430971
## robot_type1 -1.16496885 -0.06519609

Socialness

model_clmm_socialness <- clmm(ranksocial ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_socialness)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: ranksocial ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter      max.grad cond.H 
##  logit flexible  1404 -3326.77 6685.54 2599(7798) 4.06e-03 2.0e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.2943   0.5425          
##                robot_type2 1.1130   1.0550   -1.000 
##  robot         (Intercept) 0.8827   0.9395          
## Number of groups:  ParticipantID 117,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## robot_type1  -0.2116     0.2796  -0.757    0.449
## 
## Threshold coefficients:
##       Estimate Std. Error z value
## 1|2   -2.87384    0.29197  -9.843
## 2|3   -1.96443    0.28333  -6.933
## 3|4   -1.33824    0.28007  -4.778
## 4|5   -0.82618    0.27847  -2.967
## 5|6   -0.37381    0.27773  -1.346
## 6|7    0.04812    0.27753   0.173
## 7|8    0.46242    0.27776   1.665
## 8|9    0.89487    0.27847   3.214
## 9|10   1.37873    0.27990   4.926
## 10|11  1.96838    0.28281   6.960
## 11|12  2.83755    0.29095   9.753
## (36 observations deleted due to missingness)
# profile CI
confint(model_clmm_socialness, level=0.95, type=profile)
##                   2.5 %     97.5 %
## 1|2         -3.44609387 -2.3015860
## 2|3         -2.51974603 -1.4091089
## 3|4         -1.88715997 -0.7893142
## 4|5         -1.37197843 -0.2803823
## 5|6         -0.91815310  0.1705314
## 6|7         -0.49582617  0.5920628
## 7|8         -0.08198297  1.0068183
## 8|9          0.34908058  1.4406662
## 9|10         0.83013400  1.9273325
## 10|11        1.41408564  2.5226729
## 11|12        2.26730307  3.4077904
## robot_type1 -0.75960893  0.3364457

Social warmth

model_clmm_socialwarm <- clmm(ranksocialwarmth ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey) 

summary(model_clmm_socialwarm)
## Cumulative Link Mixed Model fitted with the Laplace approximation
## 
## formula: ranksocialwarmth ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
## data:    df_survey
## 
##  link  threshold nobs logLik   AIC     niter       max.grad cond.H 
##  logit flexible  1392 -3288.35 6608.70 2593(10183) 2.80e-03 1.9e+03
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr   
##  ParticipantID (Intercept) 0.4527   0.6728          
##                robot_type2 1.7531   1.3240   -1.000 
##  robot         (Intercept) 0.8524   0.9232          
## Number of groups:  ParticipantID 116,  robot 12 
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## robot_type1   0.2815     0.2776   1.014    0.311
## 
## Threshold coefficients:
##        Estimate Std. Error z value
## 1|2   -2.900019   0.287840 -10.075
## 2|3   -1.984856   0.278799  -7.119
## 3|4   -1.367529   0.275577  -4.962
## 4|5   -0.867582   0.274038  -3.166
## 5|6   -0.422393   0.273301  -1.546
## 6|7    0.001141   0.273080   0.004
## 7|8    0.423151   0.273315   1.548
## 8|9    0.865580   0.274065   3.158
## 9|10   1.360621   0.275607   4.937
## 10|11  1.982598   0.278912   7.108
## 11|12  2.912189   0.288120  10.108
## (48 observations deleted due to missingness)
# profile CI
confint(model_clmm_socialwarm, level=0.95, type=profile)
##                  2.5 %     97.5 %
## 1|2         -3.4641745 -2.3358631
## 2|3         -2.5312918 -1.4384207
## 3|4         -1.9076502 -0.8274087
## 4|5         -1.4046868 -0.3304769
## 5|6         -0.9580531  0.1132676
## 6|7         -0.5340865  0.5363686
## 7|8         -0.1125362  0.9588375
## 8|9          0.3284231  1.4027378
## 9|10         0.8204405  1.9008019
## 10|11        1.4359407  2.5292544
## 11|12        2.3474835  3.4768938
## robot_type1 -0.2626151  0.8256794

GLMERs

# create new rank variable with 1 for being ranked 1st and 0 for not being ranked first

df_survey <- df_survey %>%
  mutate(rank_glmer_goodbad = dplyr::case_when(
                                        rankbadgood == "1" ~ "1", 
                                        rankbadgood != "1" ~ "0", 
                                       ),
         rank_glmer_comfortable = dplyr::case_when(
                                        rankcomfortable == "1" ~ "1", 
                                        rankcomfortable != "1" ~ "0", 
                                       ),
         rank_glmer_competence = dplyr::case_when(
                                        rankcompetence == "1" ~ "1", 
                                        rankcompetence != "1" ~ "0",),
         rank_glmer_creepycute = dplyr::case_when(
                                        rankcreepycute == "1" ~ "1", 
                                        rankcreepycute != "1" ~ "0", 
                                       ),
         rank_glmer_friendliness = dplyr::case_when(
                                        rankfriendliness == "1" ~ "1", 
                                        rankfriendliness != "1" ~ "0", 
                                       ),
         rank_glmer_humanform = dplyr::case_when(
                                        rankhumanform == "1" ~ "1", 
                                        rankhumanform != "1" ~ "0", 
                                       ),
         rank_glmer_intelligence = dplyr::case_when(
                                        rankintelligence == "1" ~ "1", 
                                        rankintelligence != "1" ~ "0", 
                                       ),
         rank_glmer_physicalwarm = dplyr::case_when(
                                        rankphysicalwarmth == "1" ~ "1", 
                                        rankphysicalwarmth != "1" ~ "0", 
                                       ),
         rank_glmer_safety = dplyr::case_when(
                                        ranksafety == "1" ~ "1", 
                                        ranksafety != "1" ~ "0", 
                                       ),
         rank_glmer_socialcompetence = dplyr::case_when(
                                        ranksocialcompetence == "1" ~ "1", 
                                        ranksocialcompetence != "1" ~ "0", 
                                       ),
         rank_glmer_socialintelligence = dplyr::case_when(
                                        ranksocialintelligence == "1" ~ "1", 
                                        ranksocialintelligence != "1" ~ "0", 
                                       ),
         rank_glmer_social= dplyr::case_when(
                                        ranksocial == "1" ~ "1", 
                                        ranksocial != "1" ~ "0", 
                                       ),
         rank_glmer_socialwarmth = dplyr::case_when(
                                        ranksocialwarmth == "1" ~ "1", 
                                        ranksocialwarmth != "1" ~ "0", 
                                       )
         )

# turn into numeric
df_survey <- df_survey %>%
  mutate(across(c(starts_with("rank_glmer")),as.numeric
  ))

Bad/Good

model_glmer_badgood1 <- glmer(rank_glmer_goodbad ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# singularity warning, so use maximal complex random intercepts instead
model_glmer_badgood2 <- glmer(rank_glmer_goodbad ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_badgood3 <- glmer(rank_glmer_goodbad ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, use allFit command
model_allfit1 <- allFit(model_glmer_badgood1) # all issue warnings
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw :
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.0170783 (tol = 0.002, component 1)
## [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
### save summary in new object
summ_allfit1 <- summary(model_allfit1) 
### look at fixed estimates
summ_allfit1$fixef # differences relatively small
##                               (Intercept) robot_type1
## bobyqa                          -2.822995   0.4707894
## Nelder_Mead                     -2.822993   0.4707962
## nlminbwrap                      -2.823001   0.4708028
## nmkbw                           -2.823092   0.4707453
## optimx.L-BFGS-B                 -2.822963   0.4707861
## nloptwrap.NLOPT_LN_NELDERMEAD   -2.823079   0.4708202
## nloptwrap.NLOPT_LN_BOBYQA       -2.688313   0.4172696
### look at random effect
summ_allfit1$sdcor # differences small
##                               ParticipantID.(Intercept)
## bobyqa                                       0.10003491
## Nelder_Mead                                  0.10003719
## nlminbwrap                                   0.10003679
## nmkbw                                        0.10005726
## optimx.L-BFGS-B                              0.10003284
## nloptwrap.NLOPT_LN_NELDERMEAD                0.10004642
## nloptwrap.NLOPT_LN_BOBYQA                    0.09281313
##                               ParticipantID.robot_type1.(Intercept)
## bobyqa                                                    0.4563101
## Nelder_Mead                                               0.4563094
## nlminbwrap                                                0.4563093
## nmkbw                                                     0.4563169
## optimx.L-BFGS-B                                           0.4563064
## nloptwrap.NLOPT_LN_NELDERMEAD                             0.4563719
## nloptwrap.NLOPT_LN_BOBYQA                                 0.4352824
##                               ParticipantID.robot_type1 robot.(Intercept)
## bobyqa                                       -1.0000000         0.8724615
## Nelder_Mead                                  -1.0000000         0.8724702
## nlminbwrap                                   -1.0000000         0.8724426
## nmkbw                                        -0.9999267         0.8723933
## optimx.L-BFGS-B                              -1.0000000         0.8724627
## nloptwrap.NLOPT_LN_NELDERMEAD                -1.0000000         0.8724666
## nloptwrap.NLOPT_LN_BOBYQA                    -1.0000000         0.8797207
### check log likelihood
summ_allfit1$llik
##                        bobyqa                   Nelder_Mead 
##                     -376.1508                     -376.1508 
##                    nlminbwrap                         nmkbw 
##                     -376.1508                     -376.1508 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                     -376.1508                     -376.1508 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                     -376.2717
### check whether all model ran
summ_allfit1$which.OK # all ran
##                        bobyqa                   Nelder_Mead 
##                          TRUE                          TRUE 
##                    nlminbwrap                         nmkbw 
##                          TRUE                          TRUE 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                          TRUE                          TRUE 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                          TRUE
# use bobyqa
model_glmer_badgood_bobyqa <- glmer(rank_glmer_goodbad ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"), control = glmerControl(optimizer="bobyqa")) # no singularity warning anymore
## boundary (singular) fit: see help('isSingular')
summary(model_glmer_badgood_bobyqa) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: rank_glmer_goodbad ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## Control: glmerControl(optimizer = "bobyqa")
## 
##      AIC      BIC   logLik deviance df.resid 
##    764.3    795.7   -376.2    752.3     1386 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.5273 -0.3461 -0.2541 -0.1386  6.6827 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 0.01001  0.1000        
##                robot_type1 0.20822  0.4563   -1.00
##  robot         (Intercept) 0.76119  0.8725        
## Number of obs: 1392, groups:  ParticipantID, 116; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value            Pr(>|z|)    
## (Intercept)  -2.8230     0.2949  -9.574 <0.0000000000000002 ***
## robot_type1   0.4708     0.2896   1.625               0.104    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.131
## optimizer (bobyqa) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
# wald CI
confint(model_glmer_badgood_bobyqa,parm="beta_",method="Wald")
##                   2.5 %    97.5 %
## (Intercept) -3.40089070 -2.245099
## robot_type1 -0.09690684  1.038486

Competence

model_glmer_competence1 <- glmer(rank_glmer_competence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# singularity warning, so use maximal complex random intercepts instead
model_glmer_competence2 <- glmer(rank_glmer_competence ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_competence3 <- glmer(rank_glmer_competence ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# allfit command
model_allfit_comp1 <- allFit(model_glmer_competence1)
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw :
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.0235343 (tol = 0.002, component 1)
## [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00345934 (tol = 0.002, component 1)
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
### save summary in new object
summ_allfit_comp1 <- summary(model_allfit_comp1) 
### look at fixed estimates
summ_allfit_comp1$fixef # differences relatively small
##                               (Intercept) robot_type1
## bobyqa                          -3.693365   1.2467985
## Nelder_Mead                     -3.699265   1.2528709
## nlminbwrap                      -3.693371   1.2467779
## nmkbw                           -3.692845   1.2464801
## optimx.L-BFGS-B                 -3.693269   1.2466730
## nloptwrap.NLOPT_LN_NELDERMEAD   -3.693360   1.2468739
## nloptwrap.NLOPT_LN_BOBYQA       -3.291942   0.9163101
### look at random effect
summ_allfit_comp1$sdcor # differences small
##                               ParticipantID.(Intercept)
## bobyqa                                        0.4515016
## Nelder_Mead                                   0.4564540
## nlminbwrap                                    0.4514970
## nmkbw                                         0.4512882
## optimx.L-BFGS-B                               0.4514487
## nloptwrap.NLOPT_LN_NELDERMEAD                 0.4514898
## nloptwrap.NLOPT_LN_BOBYQA                     0.2857117
##                               ParticipantID.robot_type1.(Intercept)
## bobyqa                                                    0.6126591
## Nelder_Mead                                               0.6188293
## nlminbwrap                                                0.6126546
## nmkbw                                                     0.6123600
## optimx.L-BFGS-B                                           0.6125946
## nloptwrap.NLOPT_LN_NELDERMEAD                             0.6126369
## nloptwrap.NLOPT_LN_BOBYQA                                 0.4016278
##                               ParticipantID.robot_type1 robot.(Intercept)
## bobyqa                                       -1.0000000          1.284159
## Nelder_Mead                                  -1.0000000          1.283160
## nlminbwrap                                   -1.0000000          1.284154
## nmkbw                                        -0.9999920          1.284280
## optimx.L-BFGS-B                              -1.0000000          1.284243
## nloptwrap.NLOPT_LN_NELDERMEAD                -0.9999998          1.284164
## nloptwrap.NLOPT_LN_BOBYQA                    -1.0000000          1.329337
### check log likelihood
summ_allfit_comp1$llik # differences small
##                        bobyqa                   Nelder_Mead 
##                     -308.1529                     -308.1507 
##                    nlminbwrap                         nmkbw 
##                     -308.1529                     -308.1531 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                     -308.1529                     -308.1529 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                     -308.5237
### check whether all model ran
summ_allfit_comp1$which.OK # all ran 
##                        bobyqa                   Nelder_Mead 
##                          TRUE                          TRUE 
##                    nlminbwrap                         nmkbw 
##                          TRUE                          TRUE 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                          TRUE                          TRUE 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                          TRUE
# -> continue with singularity warning

summary(model_glmer_competence1) # significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: 
## rank_glmer_competence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    628.3    659.7   -308.2    616.3     1374 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.7083 -0.2027 -0.1319 -0.0828  6.9313 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 0.2039   0.4515        
##                robot_type1 0.3753   0.6127   -1.00
##  robot         (Intercept) 1.6491   1.2842        
## Number of obs: 1380, groups:  ParticipantID, 115; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value        Pr(>|z|)    
## (Intercept)  -3.6934     0.5339  -6.917 0.0000000000046 ***
## robot_type1   1.2468     0.5316   2.345           0.019 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.428
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
# wald CI
confint(model_glmer_competence1,parm="beta_",method="Wald")
##                 2.5 %    97.5 %
## (Intercept) -4.739832 -2.646876
## robot_type1  0.204793  2.288808

Comfortable

model_glmer_comfortable1 <- glmer(rank_glmer_comfortable ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))

# singularity warning, so use maximal complex random intercepts instead
model_glmer_comfortable2 <- glmer(rank_glmer_comfortable ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_comfortable3 <- glmer(rank_glmer_comfortable ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# allfit command
model_allfit_comf1 <- allFit(model_glmer_comfortable1)
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw :
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00224001 (tol = 0.002, component 1)
## [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
### save summary in new object
summ_allfit_comf1 <- summary(model_allfit_comf1) 
### look at fixed estimates
summ_allfit_comf1$fixef # differences relatively small
##                               (Intercept) robot_type1
## bobyqa                          -2.713701  -0.1087037
## Nelder_Mead                     -2.731062  -0.1324399
## nlminbwrap                      -2.713700  -0.1087003
## nmkbw                           -2.731016  -0.1323768
## optimx.L-BFGS-B                 -2.731050  -0.1324333
## nloptwrap.NLOPT_LN_NELDERMEAD   -2.713669  -0.1086758
## nloptwrap.NLOPT_LN_BOBYQA       -2.713698  -0.1087301
### look at random effect
summ_allfit_comf1$sdcor # differences small
##                               ParticipantID.(Intercept)
## bobyqa                                       0.00000000
## Nelder_Mead                                  0.06620380
## nlminbwrap                                   0.00000000
## nmkbw                                        0.06620030
## optimx.L-BFGS-B                              0.06620815
## nloptwrap.NLOPT_LN_NELDERMEAD                0.00000000
## nloptwrap.NLOPT_LN_BOBYQA                    0.00000000
##                               ParticipantID.robot_type1.(Intercept)
## bobyqa                                                    0.3874325
## Nelder_Mead                                               0.4331076
## nlminbwrap                                                0.3874366
## nmkbw                                                     0.4331382
## optimx.L-BFGS-B                                           0.4331086
## nloptwrap.NLOPT_LN_NELDERMEAD                             0.3874068
## nloptwrap.NLOPT_LN_BOBYQA                                 0.3874366
##                               ParticipantID.robot_type1 robot.(Intercept)
## bobyqa                                              NaN         0.7756755
## Nelder_Mead                                   1.0000000         0.7739354
## nlminbwrap                                          NaN         0.7756741
## nmkbw                                         0.9999971         0.7740192
## optimx.L-BFGS-B                               1.0000000         0.7739375
## nloptwrap.NLOPT_LN_NELDERMEAD                       NaN         0.7756903
## nloptwrap.NLOPT_LN_BOBYQA                           NaN         0.7756689
### check log likelihood
summ_allfit_comf1$llik # differences small
##                        bobyqa                   Nelder_Mead 
##                     -379.1287                     -378.9350 
##                    nlminbwrap                         nmkbw 
##                     -379.1287                     -378.9350 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                     -378.9350                     -379.1287 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                     -379.1287
### check whether all model ran
summ_allfit_comf1$which.OK # all ran 
##                        bobyqa                   Nelder_Mead 
##                          TRUE                          TRUE 
##                    nlminbwrap                         nmkbw 
##                          TRUE                          TRUE 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                          TRUE                          TRUE 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                          TRUE
# -> continue with singularity warning

summary(model_glmer_comfortable1) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: 
## rank_glmer_comfortable ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    769.9    801.3   -378.9    757.9     1398 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.6125 -0.3273 -0.2244 -0.1914  5.4204 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 0.004507 0.06713      
##                robot_type1 0.191272 0.43735  1.00
##  robot         (Intercept) 0.600138 0.77469      
## Number of obs: 1404, groups:  ParticipantID, 117; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value            Pr(>|z|)    
## (Intercept)  -2.7348     0.2678 -10.210 <0.0000000000000002 ***
## robot_type1  -0.1339     0.2597  -0.515               0.606    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.031
# wald CI
confint(model_glmer_comfortable1,parm="beta_",method="Wald")
##                  2.5 %     97.5 %
## (Intercept) -3.2597818 -2.2098420
## robot_type1 -0.6428533  0.3751402

Friendliness

# rank_glmer_friendliness
model_glmer_friendliness <- glmer(rank_glmer_friendliness ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))

summary(model_glmer_friendliness)
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: 
## rank_glmer_friendliness ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    696.9    728.4   -342.5    684.9     1386 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.8015 -0.3050 -0.2021 -0.1033  7.7668 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 0.003669 0.06057      
##                robot_type1 0.307761 0.55476  1.00
##  robot         (Intercept) 1.940861 1.39315      
## Number of obs: 1392, groups:  ParticipantID, 116; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value          Pr(>|z|)    
## (Intercept)  -3.2059     0.4444  -7.214 0.000000000000543 ***
## robot_type1  -0.1340     0.4351  -0.308             0.758    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.021
# wald CI
confint(model_glmer_friendliness,parm="beta_",method="Wald")
##                  2.5 %     97.5 %
## (Intercept) -4.0768585 -2.3348612
## robot_type1 -0.9868149  0.7187896

Human-like form

# rank_glmer_humanform
model_glmer_humanform1 <- glmer(rank_glmer_humanform ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.0682576 (tol = 0.002, component 1)
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : Model is nearly unidentifiable: very large eigenvalue
##  - Rescale variables?
# convergence warning, so use maximal complex random intercepts instead
model_glmer_humanform2 <- glmer(rank_glmer_humanform ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit")) # singularity warning
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_humanform3 <- glmer(rank_glmer_humanform ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# allfit command
model_allfit_humanform1 <- allFit(model_glmer_humanform1)
## bobyqa :
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : Model failed to converge with max|grad| = 0.056521 (tol = 0.002, component 1)
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : Model is nearly unidentifiable: very large eigenvalue
##  - Rescale variables?
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw :
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## unable to evaluate scaled gradient
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge: degenerate Hessian with 1 negative eigenvalues
## [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
### save summary in new object
summ_allfit_humanform1 <- summary(model_allfit_humanform1) 
### look at fixed estimates
summ_allfit_humanform1$fixef # differences large
##                               (Intercept) robot_type1
## bobyqa                          -6.565954    3.769859
## Nelder_Mead                     -6.630736    3.849182
## nlminbwrap                      -6.598697    3.818572
## nmkbw                           -4.149879    1.406099
## optimx.L-BFGS-B                 -6.568154    3.790405
## nloptwrap.NLOPT_LN_NELDERMEAD   -6.630795    3.849288
## nloptwrap.NLOPT_LN_BOBYQA       -3.871897    1.244048
### look at random effect
summ_allfit_humanform1$sdcor # differences large
##                               ParticipantID.(Intercept)
## bobyqa                                     3.0866121771
## Nelder_Mead                                3.2576848077
## nlminbwrap                                 3.1860689140
## nmkbw                                      0.0001280365
## optimx.L-BFGS-B                            3.1213201357
## nloptwrap.NLOPT_LN_NELDERMEAD              3.2578246675
## nloptwrap.NLOPT_LN_BOBYQA                  0.3664043944
##                               ParticipantID.robot_type1.(Intercept)
## bobyqa                                                 3.1753684212
## Nelder_Mead                                            3.3439285830
## nlminbwrap                                             3.2731623941
## nmkbw                                                  0.0001664081
## optimx.L-BFGS-B                                        3.2089439826
## nloptwrap.NLOPT_LN_NELDERMEAD                          3.3439381364
## nloptwrap.NLOPT_LN_BOBYQA                              0.4246317277
##                               ParticipantID.robot_type1 robot.(Intercept)
## bobyqa                                       -1.0000000          1.725465
## Nelder_Mead                                  -1.0000000          1.729363
## nlminbwrap                                   -1.0000000          1.724014
## nmkbw                                        -0.4062133          1.601747
## optimx.L-BFGS-B                              -1.0000000          1.714896
## nloptwrap.NLOPT_LN_NELDERMEAD                -1.0000000          1.729265
## nloptwrap.NLOPT_LN_BOBYQA                    -1.0000000          1.595963
### check log likelihood
summ_allfit_humanform1$llik # differences large
##                        bobyqa                   Nelder_Mead 
##                     -244.8129                     -244.8087 
##                    nlminbwrap                         nmkbw 
##                     -244.8088                     -249.0529 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                     -244.8117                     -244.8087 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                     -249.1687
### check whether all model ran
summ_allfit_humanform1$which.OK # all ran 
##                        bobyqa                   Nelder_Mead 
##                          TRUE                          TRUE 
##                    nlminbwrap                         nmkbw 
##                          TRUE                          TRUE 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                          TRUE                          TRUE 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                          TRUE
# -> Redo with reduced model

# allfit command
model_allfit_humanform2 <- allFit(model_glmer_humanform2)
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw : [failed]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
### save summary in new object
summ_allfit_humanform2 <- summary(model_allfit_humanform2) 
### look at fixed estimates
summ_allfit_humanform2$fixef # small differences 
##                               (Intercept) robot_type1
## bobyqa                          -4.149729    1.406134
## Nelder_Mead                     -4.149716    1.406166
## nlminbwrap                      -4.149744    1.406151
## optimx.L-BFGS-B                 -4.149758    1.406107
## nloptwrap.NLOPT_LN_NELDERMEAD   -4.149627    1.406148
## nloptwrap.NLOPT_LN_BOBYQA       -4.149714    1.406126
### look at random effect
summ_allfit_humanform2$sdcor # small differences
##                               ParticipantID:robot_type.(Intercept)
## bobyqa                                                           0
## Nelder_Mead                                                      0
## nlminbwrap                                                       0
## optimx.L-BFGS-B                                                  0
## nloptwrap.NLOPT_LN_NELDERMEAD                                    0
## nloptwrap.NLOPT_LN_BOBYQA                                        0
##                               ParticipantID.(Intercept) robot.(Intercept)
## bobyqa                                                0          1.601706
## Nelder_Mead                                           0          1.601717
## nlminbwrap                                            0          1.601725
## optimx.L-BFGS-B                                       0          1.601716
## nloptwrap.NLOPT_LN_NELDERMEAD                         0          1.601670
## nloptwrap.NLOPT_LN_BOBYQA                             0          1.601724
### check log likelihood
summ_allfit_humanform2$llik # small differences
##                        bobyqa                   Nelder_Mead 
##                     -249.0529                     -249.0529 
##                    nlminbwrap               optimx.L-BFGS-B 
##                     -249.0529                     -249.0529 
## nloptwrap.NLOPT_LN_NELDERMEAD     nloptwrap.NLOPT_LN_BOBYQA 
##                     -249.0529                     -249.0529
### check whether all model ran
summ_allfit_humanform2$which.OK # 
##                        bobyqa                   Nelder_Mead 
##                          TRUE                          TRUE 
##                    nlminbwrap                         nmkbw 
##                          TRUE                         FALSE 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                          TRUE                          TRUE 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                          TRUE
# -> continue with singularity warning of reduced model

summary(model_glmer_humanform2) # significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: rank_glmer_humanform ~ robot_type + (1 | ParticipantID) + (1 |  
##     ParticipantID:robot_type) + (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    508.1    534.3   -249.1    498.1     1399 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -1.0073 -0.1706 -0.0855 -0.0730 12.1811 
## 
## Random effects:
##  Groups                   Name        Variance        Std.Dev. 
##  ParticipantID:robot_type (Intercept) 0.0000000000000 0.0000000
##  ParticipantID            (Intercept) 0.0000000001041 0.0000102
##  robot                    (Intercept) 2.5654881354194 1.6017141
## Number of obs: 1404, groups:  
## ParticipantID:robot_type, 234; ParticipantID, 117; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value          Pr(>|z|)    
## (Intercept)  -4.1497     0.5718  -7.257 0.000000000000396 ***
## robot_type1   1.4061     0.5514   2.550            0.0108 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.206
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
# wald CI
confint(model_glmer_humanform2,parm="beta_",method="Wald")
##                  2.5 %    97.5 %
## (Intercept) -5.2704690 -3.028981
## robot_type1  0.3253775  2.486905

Creepy/cute

model_glmer_creepycute1 <- glmer(rank_glmer_creepycute ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# singularity warning, so use maximal complex random intercepts instead
model_glmer_creepycute2 <- glmer(rank_glmer_creepycute ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_creepycute3 <- glmer(rank_glmer_creepycute ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# allfit command
model_allfit_creepy1 <- allFit(model_glmer_creepycute1)
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw :
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00886124 (tol = 0.002, component 1)
## [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
### save summary in new object
summ_allfit_creepy1 <- summary(model_allfit_creepy1) 
### look at fixed estimates
summ_allfit_creepy1$fixef # differences relatively small
##                               (Intercept) robot_type1
## bobyqa                          -3.080120  -0.9784994
## Nelder_Mead                     -3.082248  -0.9804868
## nlminbwrap                      -3.082237  -0.9804797
## nmkbw                           -3.082373  -0.9808375
## optimx.L-BFGS-B                 -3.082337  -0.9804823
## nloptwrap.NLOPT_LN_NELDERMEAD   -3.082309  -0.9805309
## nloptwrap.NLOPT_LN_BOBYQA       -3.084131  -0.9820012
### look at random effect
summ_allfit_creepy1$sdcor # differences small
##                               ParticipantID.(Intercept)
## bobyqa                                        0.3057479
## Nelder_Mead                                   0.3078533
## nlminbwrap                                    0.3078465
## nmkbw                                         0.3079814
## optimx.L-BFGS-B                               0.3078599
## nloptwrap.NLOPT_LN_NELDERMEAD                 0.3078471
## nloptwrap.NLOPT_LN_BOBYQA                     0.3083834
##                               ParticipantID.robot_type1.(Intercept)
## bobyqa                                                    0.5185656
## Nelder_Mead                                               0.5217025
## nlminbwrap                                                0.5216914
## nmkbw                                                     0.5219071
## optimx.L-BFGS-B                                           0.5217053
## nloptwrap.NLOPT_LN_NELDERMEAD                             0.5216964
## nloptwrap.NLOPT_LN_BOBYQA                                 0.5226008
##                               ParticipantID.robot_type1 robot.(Intercept)
## bobyqa                                        1.0000000         0.8075166
## Nelder_Mead                                   1.0000000         0.8075176
## nlminbwrap                                    1.0000000         0.8075198
## nmkbw                                         0.9999978         0.8074960
## optimx.L-BFGS-B                               1.0000000         0.8074958
## nloptwrap.NLOPT_LN_NELDERMEAD                 1.0000000         0.8074858
## nloptwrap.NLOPT_LN_BOBYQA                     1.0000000         0.8090118
### check log likelihood
summ_allfit_creepy1$llik # differences small
##                        bobyqa                   Nelder_Mead 
##                     -351.9023                     -351.8998 
##                    nlminbwrap                         nmkbw 
##                     -351.8998                     -351.8998 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                     -351.8998                     -351.8998 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                     -351.8998
### check whether all model ran
summ_allfit_creepy1$which.OK # all ran 
##                        bobyqa                   Nelder_Mead 
##                          TRUE                          TRUE 
##                    nlminbwrap                         nmkbw 
##                          TRUE                          TRUE 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                          TRUE                          TRUE 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                          TRUE
# -> continue with singularity warning

summary(model_glmer_creepycute1) # significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: 
## rank_glmer_creepycute ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    715.8    747.3   -351.9    703.8     1398 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.6914 -0.2874 -0.2474 -0.1216  6.6311 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 0.09348  0.3057       
##                robot_type1 0.26891  0.5186   1.00
##  robot         (Intercept) 0.65209  0.8075       
## Number of obs: 1404, groups:  ParticipantID, 117; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value             Pr(>|z|)    
## (Intercept)  -3.0801     0.3325  -9.263 < 0.0000000000000002 ***
## robot_type1  -0.9785     0.3255  -3.006              0.00265 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.413 
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
# wald CI
confint(model_glmer_creepycute1,parm="beta_",method="Wald")
##                 2.5 %    97.5 %
## (Intercept) -3.731853 -2.428399
## robot_type1 -1.616554 -0.340442

Intelligence

model_glmer_intelligence1 <- glmer(rank_glmer_intelligence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# singularity warning, so use maximal complex random intercepts instead
model_glmer_intelligence2 <- glmer(rank_glmer_intelligence ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_intelligence3 <- glmer(rank_glmer_intelligence ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# allfit command
model_allfit_int1 <- allFit(model_glmer_intelligence1)
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw :
## boundary (singular) fit: see help('isSingular')
## [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
# -> nmkbw doesnt issue warning

# use nmkbw
model_glmer_intelligence_nmkbw <- glmer(rank_glmer_intelligence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"), control = glmerControl(optimizer="nmkbw")) # no singularity warning 
## boundary (singular) fit: see help('isSingular')
summary(model_glmer_intelligence_nmkbw) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: 
## rank_glmer_intelligence ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## Control: glmerControl(optimizer = "nmkbw")
## 
##      AIC      BIC   logLik deviance df.resid 
##    620.0    651.4   -304.0    608.0     1374 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.7797 -0.3294 -0.0154 -0.0120  6.3063 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 6.7120   2.5907        
##                robot_type1 7.2612   2.6947   -1.00
##  robot         (Intercept) 0.9014   0.9494        
## Number of obs: 1380, groups:  ParticipantID, 115; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value        Pr(>|z|)    
## (Intercept)  -5.4928     0.8099  -6.782 0.0000000000119 ***
## robot_type1   3.4306     0.8062   4.255 0.0000208797161 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.867
## optimizer (nmkbw) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
# wald CI
confint(model_glmer_intelligence_nmkbw,parm="beta_",method="Wald")
##                 2.5 %    97.5 %
## (Intercept) -7.080245 -3.905328
## robot_type1  1.850482  5.010740

Physical warmth

model_glmer_physicalwarm1 <- glmer(rank_glmer_physicalwarm ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# singularity warning, so use maximal complex random intercepts instead
model_glmer_physicalwarm2 <- glmer(rank_glmer_physicalwarm ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_physicalwarm3 <- glmer(rank_glmer_physicalwarm ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# allfit command
model_allfit_physwarm1 <- allFit(model_glmer_physicalwarm1)
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead : [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw :
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00366719 (tol = 0.002, component 1)
## [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
# -> neldermead doesnt issue warning

# use nelder mead
model_glmer_physicalwarm_nm <- glmer(rank_glmer_physicalwarm ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"), control = glmerControl(optimizer="Nelder_Mead")) # no singularity warning 

summary(model_glmer_physicalwarm_nm) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: 
## rank_glmer_physicalwarm ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## Control: glmerControl(optimizer = "Nelder_Mead")
## 
##      AIC      BIC   logLik deviance df.resid 
##    687.9    719.4   -337.9    675.9     1398 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.8007 -0.2761 -0.1852 -0.1256  6.9623 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 0.05463  0.2337       
##                robot_type1 0.25603  0.5060   1.00
##  robot         (Intercept) 1.12285  1.0596       
## Number of obs: 1404, groups:  ParticipantID, 117; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value            Pr(>|z|)    
## (Intercept)  -3.1364     0.3711  -8.453 <0.0000000000000002 ***
## robot_type1  -0.6644     0.3630  -1.830              0.0672 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.183
# wald CI
confint(model_glmer_physicalwarm_nm,parm="beta_",method="Wald")
##                 2.5 %     97.5 %
## (Intercept) -3.863653 -2.4091423
## robot_type1 -1.375884  0.0470625

Safety

model_glmer_safety1 <- glmer(rank_glmer_safety ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# singularity warning, so use maximal complex random intercepts instead
model_glmer_safety2 <- glmer(rank_glmer_safety ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_safety3 <- glmer(rank_glmer_safety ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# allfit command
model_allfit_safety1 <- allFit(model_glmer_safety1)
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw : [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
# -> nmkbw doesnt issue warning

# use nmkbw
model_glmer_safety_nmkbw <- glmer(rank_glmer_safety ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"), control = glmerControl(optimizer="nmkbw")) # no singularity warning 

summary(model_glmer_safety_nmkbw) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: rank_glmer_safety ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## Control: glmerControl(optimizer = "nmkbw")
## 
##      AIC      BIC   logLik deviance df.resid 
##    798.1    829.5   -393.0    786.1     1398 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.4539 -0.3167 -0.2477 -0.2240  4.4636 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 0.003151 0.05613      
##                robot_type1 0.155162 0.39391  1.00
##  robot         (Intercept) 0.304425 0.55175      
## Number of obs: 1404, groups:  ParticipantID, 117; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value            Pr(>|z|)    
## (Intercept)  -2.5951     0.2049 -12.666 <0.0000000000000002 ***
## robot_type1  -0.1513     0.1971  -0.768               0.443    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.051
# wald CI
confint(model_glmer_safety_nmkbw,parm="beta_",method="Wald")
##                  2.5 %     97.5 %
## (Intercept) -2.9966278 -2.1934831
## robot_type1 -0.5377004  0.2350084

Social competence

model_glmer_socialcomp1 <- glmer(rank_glmer_socialcompetence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))

summary(model_glmer_socialcomp1) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: rank_glmer_socialcompetence ~ robot_type + (1 + robot_type |  
##     ParticipantID) + (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    710.2    741.7   -349.1    698.2     1398 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.7180 -0.2705 -0.1914 -0.1545  6.1015 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 0.03131  0.1770        
##                robot_type1 0.20687  0.4548   -1.00
##  robot         (Intercept) 1.14659  1.0708        
## Number of obs: 1404, groups:  ParticipantID, 117; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value            Pr(>|z|)    
## (Intercept)  -3.0188     0.3531  -8.549 <0.0000000000000002 ***
## robot_type1   0.3809     0.3491   1.091               0.275    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.046
# wald CI
confint(model_glmer_socialcomp1,parm="beta_",method="Wald")
##                  2.5 %    97.5 %
## (Intercept) -3.7108556 -2.326721
## robot_type1 -0.3033538  1.065085

Social intelligence

model_glmer_socialint1 <- glmer(rank_glmer_socialintelligence ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# singularity warning, so use maximal complex random intercepts instead
model_glmer_socialint2 <- glmer(rank_glmer_socialintelligence ~ robot_type + (1 | ParticipantID) + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# still warning, reduce
model_glmer_socialint3 <- glmer(rank_glmer_socialintelligence ~ robot_type + (1 | ParticipantID:robot_type) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
# allfit command
model_allfit_socialint1 <- allFit(model_glmer_socialint1)
## bobyqa :
## boundary (singular) fit: see help('isSingular')
## [OK]
## Nelder_Mead :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nlminbwrap :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nmkbw :
## boundary (singular) fit: see help('isSingular')
## [OK]
## optimx.L-BFGS-B :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_NELDERMEAD :
## boundary (singular) fit: see help('isSingular')
## [OK]
## nloptwrap.NLOPT_LN_BOBYQA :
## boundary (singular) fit: see help('isSingular')
## [OK]
### save summary in new object
summ_allfit_socialint1 <- summary(model_allfit_socialint1) 
### look at fixed estimates
summ_allfit_socialint1$fixef # differences relatively small
##                               (Intercept) robot_type1
## bobyqa                          -3.231581   0.6340516
## Nelder_Mead                     -3.229998   0.6326828
## nlminbwrap                      -3.231586   0.6340509
## nmkbw                           -3.231526   0.6340493
## optimx.L-BFGS-B                 -3.231607   0.6340728
## nloptwrap.NLOPT_LN_NELDERMEAD   -3.231703   0.6339966
## nloptwrap.NLOPT_LN_BOBYQA       -3.009671   0.5034671
### look at random effect
summ_allfit_socialint1$sdcor # differences small
##                               ParticipantID.(Intercept)
## bobyqa                                        0.2414083
## Nelder_Mead                                   0.2399147
## nlminbwrap                                    0.2414050
## nmkbw                                         0.2413724
## optimx.L-BFGS-B                               0.2414095
## nloptwrap.NLOPT_LN_NELDERMEAD                 0.2413869
## nloptwrap.NLOPT_LN_BOBYQA                     0.2095938
##                               ParticipantID.robot_type1.(Intercept)
## bobyqa                                                    0.4917830
## Nelder_Mead                                               0.4891736
## nlminbwrap                                                0.4917778
## nmkbw                                                     0.4916505
## optimx.L-BFGS-B                                           0.4917869
## nloptwrap.NLOPT_LN_NELDERMEAD                             0.4917073
## nloptwrap.NLOPT_LN_BOBYQA                                 0.4384246
##                               ParticipantID.robot_type1 robot.(Intercept)
## bobyqa                                               -1          1.223156
## Nelder_Mead                                          -1          1.223106
## nlminbwrap                                           -1          1.223156
## nmkbw                                                -1          1.223266
## optimx.L-BFGS-B                                      -1          1.223145
## nloptwrap.NLOPT_LN_NELDERMEAD                        -1          1.223160
## nloptwrap.NLOPT_LN_BOBYQA                            -1          1.239411
### check log likelihood
summ_allfit_socialint1$llik # differences small
##                        bobyqa                   Nelder_Mead 
##                     -332.1377                     -332.1399 
##                    nlminbwrap                         nmkbw 
##                     -332.1377                     -332.1377 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                     -332.1377                     -332.1377 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                     -332.3146
### check whether all model ran
summ_allfit_socialint1$which.OK # all ran 
##                        bobyqa                   Nelder_Mead 
##                          TRUE                          TRUE 
##                    nlminbwrap                         nmkbw 
##                          TRUE                          TRUE 
##               optimx.L-BFGS-B nloptwrap.NLOPT_LN_NELDERMEAD 
##                          TRUE                          TRUE 
##     nloptwrap.NLOPT_LN_BOBYQA 
##                          TRUE
# continue with singularity warning

summary(model_glmer_socialint1) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: rank_glmer_socialintelligence ~ robot_type + (1 + robot_type |  
##     ParticipantID) + (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    676.3    707.7   -332.1    664.3     1386 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.7937 -0.2534 -0.1673 -0.1076  7.2344 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 0.05828  0.2414        
##                robot_type1 0.24185  0.4918   -1.00
##  robot         (Intercept) 1.49610  1.2232        
## Number of obs: 1392, groups:  ParticipantID, 116; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value           Pr(>|z|)    
## (Intercept)  -3.2316     0.4228  -7.643 0.0000000000000212 ***
## robot_type1   0.6341     0.4124   1.537              0.124    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.137
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
# wald CI
confint(model_glmer_socialint1,parm="beta_",method="Wald")
##                  2.5 %    97.5 %
## (Intercept) -4.0602883 -2.402892
## robot_type1 -0.1742918  1.442415

Socialness

model_glmer_social1 <- glmer(rank_glmer_social ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))

summary(model_glmer_social1) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: rank_glmer_social ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    707.3    738.8   -347.7    695.3     1398 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.6848 -0.3341 -0.1905 -0.0887  8.0403 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr 
##  ParticipantID (Intercept) 0.0236   0.1536        
##                robot_type1 0.3206   0.5662   -1.00
##  robot         (Intercept) 2.0908   1.4460        
## Number of obs: 1404, groups:  ParticipantID, 117; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value         Pr(>|z|)    
## (Intercept)  -3.3430     0.4881  -6.849 0.00000000000745 ***
## robot_type1   0.7492     0.4771   1.570            0.116    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 -0.177
# wald CI
confint(model_glmer_social1,parm="beta_",method="Wald")
##                  2.5 %    97.5 %
## (Intercept) -4.2997345 -2.386345
## robot_type1 -0.1858341  1.684210

Social warmth

model_glmer_socialwarm1 <- glmer(rank_glmer_socialwarmth ~ robot_type + (1 + robot_type| ParticipantID) + (1| robot), data = df_survey, family=binomial("logit"))
## boundary (singular) fit: see help('isSingular')
summary(model_glmer_socialwarm1) # not significant
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: 
## rank_glmer_socialwarmth ~ robot_type + (1 + robot_type | ParticipantID) +  
##     (1 | robot)
##    Data: df_survey
## 
##      AIC      BIC   logLik deviance df.resid 
##    729.0    760.5   -358.5    717.0     1386 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -0.7245 -0.2518 -0.2150 -0.1761  6.5930 
## 
## Random effects:
##  Groups        Name        Variance Std.Dev. Corr
##  ParticipantID (Intercept) 0.009416 0.09703      
##                robot_type1 0.240270 0.49017  1.00
##  robot         (Intercept) 0.917681 0.95796      
## Number of obs: 1392, groups:  ParticipantID, 116; robot, 12
## 
## Fixed effects:
##             Estimate Std. Error z value            Pr(>|z|)    
## (Intercept)  -2.8990     0.3157  -9.183 <0.0000000000000002 ***
## robot_type1  -0.2713     0.3097  -0.876               0.381    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## robot_type1 0.057 
## optimizer (Nelder_Mead) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
# wald CI
confint(model_glmer_socialwarm1,parm="beta_",method="Wald")
##                  2.5 %     97.5 %
## (Intercept) -3.5177693 -2.2802313
## robot_type1 -0.8782597  0.3356416